Media for large scale data storage can generally be classified as either tape-based sequential access media or disk-based random access media. Storage devices which utilise tape-based media are typically used for backup and archival storage of large datasets. Data stored on a tape medium typically comprises backed up data files, which are structured in sequential records or blocks and delimited by file mark data. Due to its sequential nature, a tape must be wound past all preceding data and file marks in order to read from or write to any particular location or file, a process which inevitably leads to severe speed penalties compared with systems employing disk-based random access media. Nevertheless, where a primary requirement is for data archiving, the high capacity, longevity and relative low cost of tape media has meant that systems based on tape-based sequential access media, for example conventional tape libraries, have remained a popular choice for many users.
A conventional tape library typically stores data on tape media, in the form of tape cartridges, and can be defined in terms of its geometry. Generally, a geometry comprises a number of addressable ‘elements’ namely: storage elements (slots), for storing inactive cartridges; one or more data transfer elements (tape drives), for reading and writing data respectively from and to loaded cartridges; and one or more medium transport elements (robot pickers), for moving cartridges between designated slots and drives. Some conventional tape libraries may have additional geometry elements such as one or more import/export elements (mailslots), for receiving new cartridges into the library or delivering existing cartridges out from the library.
Conventional tape libraries are typically accessed and controlled by storage application software running on a host computer, which is attached (either directly, or indirectly via a network) to a library. The application software typically maintains a record of where in a library particular data has been stored, typically by reference to a particular cartridge in a particular slot. The application software also controls the library to store and retrieve data using commands identifying the associated geometry elements. For example, a read operation typically involves a move medium command followed by a read command. The move medium command controls a picker to move a selected cartridge (e.g. tape cartridge number 0001) stored in a particular slot to a specified drive so that particular data may be read from the cartridge and returned to the host.
Advances in hard disk storage technology have over the years reduced the density and cost per megabyte differential between disk media and tape media, thus promoting disk media as a viable alternative to tape media in some circumstances. However, there still exist legacy data storage software applications that are designed to operate with sequential-access tape devices and libraries conforming to a defined geometry. Often, an organisation may have invested significantly in application software, skills and management processes for tape-based backup and restore activities. In some such circumstances, it has proved beneficial to utilise disk-based random-access storage technologies in storage systems that remain compatible with legacy tape-based sequential access storage applications. Storage systems of this type are known as Virtual Tape Libraries (VTL) and emulate conventional tape libraries such that storage application software is unaware that an expected physical tape library has been replaced with an emulation thereof. Such storage systems typically replace physical tape media with one or more random access hard disks or disk arrays (which will hereinafter be referred to generally as “disk storage”), translating commands based on library elements into commands suitable for storing data on disk.
FIG. 1 shows an example prior art VTL in functional form. A host 101 is operably connected to a VTL 102, which comprises an emulation module 103, a file system module 104, disk storage 105 and a storage map 106, which may be stored on the disk storage 105 and loaded into volatile memory such as RAM (not shown) for quick access while the system is in operation. Typically, the host 101 executes storage application software configured to interact with a conventional tape library of defined geometry. When a read or write operation is initiated, the host 101 sends respective tape library commands to the VTL 102 using an appropriate protocol (for example a Small Computer System Interface (SCSI) protocol), which, in turn, may be over iSCSI or Fibre Channel. The emulation module 103 receives the host commands and converts them into commands for the file system module 104 so that the appropriate data can be read from or written to the disk storage 105. The emulation module 103 converts from library commands to disk commands based on the map 106, which maps library data, received from the host 101 in terms of library elements and logical locations (e.g. cartridges, records and file marks etc.), to a data representation that can be stored on a disk subsystem (e.g. disk, volume and sector etc.).